/*
 Problem Description
今年的ACM暑期集训队一共有18人，分为6支队伍。其中有一个叫做EOF的队伍，由04级的阿牛、XC以及05级的COY组成。
在共同的集训生活中，大家建立了深厚的友谊，阿牛准备做点什么来纪念这段激情燃烧的岁月，想了一想，
阿牛从家里拿来了一块上等的牛肉干，准备在上面刻下一个长度为n的只由"E" "O" "F"三种字符组成的字符串
（可以只有其中一种或两种字符，但绝对不能有其他字符）,阿牛同时禁止在串中出现O相邻的情况，
他认为，"OO"看起来就像发怒的眼睛，效果不好。

你，NEW ACMer,EOF的崇拜者，能帮阿牛算一下一共有多少种满足要求的不同的字符串吗？

Input
输入数据包含多个测试实例,每个测试实例占一行,由一个整数n组成，(0<n<40)。
 

Output
对于每个测试实例，请输出全部的满足要求的涂法，每个实例的输出占一行。
 

Sample Input
1
2
 

Sample Output
3
8
-----------------------------------------------------------------------
分析：

      分析题意，我们知道这是一道排列计数问题。而且，题意的要求是对于给定字符串长度n，
      给出对应的方案数m。我很容易联想到“f(n) = m”这样的函数关系。并且，题目中的限制条件只有“两个O不能相邻”。
      计数 + 简单限制 = 递推。接下来的问题就是求出递推公式了。

* 第n格取“O”:

----------------------------------
|   |   |   | …… |     |     |  O  |
----------------------------------
 1   2   3          n-2 n-1   n


    -----------------------------------
    |   |   |   | …… |     |  E  |  O  |
    -----------------------------------
      1   2   3         n-2  n-1   n


    -----------------------------------
    |   |   |   | …… |     |  F  |  O  |
    -----------------------------------
      1   2   3         n-2  n-1   n

      对于第n格取“O”的情况，为了保证两个“O”不相邻，n-1格有两种可能，即“E”、“F”。对于余下的n-2格，
      由于第n-1格不取“O”，所以第n-2格不受n-1格的限制。其排列数等于f(n-2)。

* 第n格不取“O”:
----------------------------------
|   |   |   | …… |     |     |  E  |
----------------------------------
  1   2   3         n-2  n-1  n


----------------------------------
|   |   |   | …… |     |     |  F  |
----------------------------------
  1   2   3         n-2  n-1  n

      对于第n格不取“O”的情况，即取“E”、“F”。对于余下的n-1格，由于第n格不取“O”，
      所以，第n-1格不受n格的限制。其排列数等于f(n-1)。

      综上，f(n) = 2*f(n-2) + 2*f(n-1)
           = 2*(f(n-2) + f(n-1))
 */
package com.yuan.algorithms.acm201504;

import java.util.Scanner;

public class HD2047EOF牛肉串 {

	public static void main(String[] args) {
		long[] x = new long[40];
		x[1] = 3;
		x[2] = 8;
		for (int i = 3; i < x.length; i++) {
			x[i] = 2 * (x[i - 1] + x[i - 2]);

		}
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int n = sc.nextInt();
			System.out.println(x[n]);
		}
	}

}
